home *** CD-ROM | disk | FTP | other *** search
/ CU Amiga Super CD-ROM 27 / CU Amiga Magazine's Super CD-ROM 27 (1998)(EMAP Images)(GB)[!][issue 1998-10].iso / CDSupport / Index < prev    next >
Text File  |  1998-08-07  |  3KB  |  109 lines

  1. /* */
  2.  
  3. /* ;;; Load libraries */
  4. call LoadLib('rexxsupport.library')
  5. call LoadLib('rexxdossupport.library')
  6. call LoadLib('rexxreqtools.library')
  7. ;;;
  8. /*  ;;; Set up a few things */
  9. options results
  10. address command
  11. OutFile = 'RAM:CUCDindex'
  12. if exists('ENVARC:CUCDindex') then IndexPath = AddPart(GetVar('ENVARC:CUCDindex'),'')
  13. else IndexPath = 'indices/'
  14. ;;;
  15. /* ;;; Get search string and CDs to search */
  16. SearchStr = rtgetstring('iris','Enter search string and press button'||'0a'x||'for range of CDs to search','CUCD Search','_All|_This one|_Selected|_Cancel','rt_reqpos = reqpos_centerscr',Choice)
  17. if SearchStr = '' then exit
  18. select
  19.     when Choice = 1 then do
  20.         'list' IndexPath 'lformat "%P%N" >RAM:cdsearch1.tmp'
  21.         'sort RAM:cdsearch1.tmp RAM:cdsearch2.tmp'
  22.         call open(in,'RAM:cdsearch2.tmp','R')
  23.         drop CDs.
  24.         i = 0
  25.         do until eof(in)
  26.             i = i + 1
  27.             CDs.i = readln(in)
  28.             end
  29.         CDs.count = i - 1
  30.         call close(in)
  31.         'delete >NIL: RAM:cdsearch?.tmp'
  32.         end
  33.     when Choice = 2 then do
  34.         if left(absolutepath(''),4) ~= 'CUCD' then call ExitMsg('You can only use the "This CD"'||'0a'x||'option when running from the CD')
  35.         CDs.count = 1
  36.         CDs.1 = IndexPath||left(absolutepath(''),6)
  37.         end
  38.     when Choice = 3 then do
  39.         call rtfilerequest(IndexPath,,'Select CDs to search','_Search','rtfi_flags = freqf_multiselect',CDs)
  40.         if symbol('CDs.count') ~= 'VAR' then exit
  41.         end
  42.     otherwise exit
  43.     end
  44. ;;;
  45. /* ;;; Set up progress bar */
  46. if ~show('P','FRESHBAR_REXX.1') then do
  47.     address command 'Run >NIL: Freshbar'
  48.     FreshBarStarted = 1
  49.     end
  50. address 'FRESHBAR_REXX.1'
  51. 'CREATEBARWINDOW title "Searching..." buttontext "Cancel"'
  52. WinHandle = result
  53. 'SETBARWINDOWWIDTH' WinHandle '400'
  54. 'ADDBAR' WinHandle CDs.count 0
  55. BarHandle = result
  56. 'SETPROGRESSMODE' WinHandle BarHandle 2
  57. 'OPENBARWINDOW' WinHandle
  58. address command
  59. ;;;
  60. /* ;;; Search CDs */
  61. 'delete >NIL:' OutFile
  62. do i = CDs.count to 1 by -1
  63.     address 'FRESHBAR_REXX.1' 'TESTOKBUTTON' WinHandle
  64.     if result = 1 then call ExitMsg('Aborted')
  65.     address 'FRESHBAR_REXX.1' 'SETCURRENT' WinHandle BarHandle CDs.count - i + 1
  66.     'FlashFind >>'OutFile CDs.i '"'SearchStr'" NOPREFS QUIET'
  67.     end
  68. address 'FRESHBAR_REXX.1' 'DELETEBARWINDOW' WinHandle
  69. ;;;
  70. /* ;;; Exit if no matches */
  71. if word(statef(OutFile),2) = 0 then do
  72.     call ExitMsg('No matches found for "'SearchStr'"')
  73.     exit
  74.     end
  75. ;;;
  76. /* ;;; Show matches */
  77. 'Version >NIL: version 39'
  78. if RC = 5 then 'AmigaGuide' OutFile
  79. else 'Multiview' OutFile
  80. ;;;
  81. /* ;;; Cleanup and exit */
  82. CleanUp:
  83.     'delete >NIL:' OutFile
  84.     if FreshBarStarted = 1 then address 'FRESHBAR_REXX.1' 'QUIT'
  85.     exit
  86. ;;;
  87.  
  88. /* ;;; Load a library */
  89. LoadLib:
  90.     parse arg library
  91.     if ~show('L',library) then do
  92.         if ~addlib(library,0,-30,0) then do
  93.             say 'Failed to load' library
  94.             say 'Make sure you have run InitCD'
  95.             exit
  96.             end
  97.         end
  98.     return
  99. ;;;
  100. /* ;;; Exit with a requester */
  101. ExitMsg:
  102.     parse arg msg
  103.     call rtezrequest(msg,' _OK ','CUCD Search','rt_reqpos = reqpos_centerscr')
  104.     call Cleanup()
  105.     return
  106. ;;;
  107.  
  108.  
  109.